package com.kk.demo.mesi.impl;

import com.kk.demo.mesi.MesiStateContext;
import com.kk.demo.mesi.MesiStateContext.MesiState;
import com.kk.demo.mesi.MesiStateServiceInf;

/**
 * 
 * 这行数据有效，数据和远程的数据一致，数据只存在于本Cache中。
* 源文件名：ExclusiveStateImpl.java
* 文件版本：1.0.0
* 创建作者：liujun
* 创建日期：2016年9月21日
* 修改作者：liujun
* 修改日期：2016年9月21日
* 文件描述：liujun
* 版权所有：Copyright 2016 zjhz, Inc. All Rights Reserved.
*/
public class ExclusiveStateImpl implements MesiStateServiceInf {

    /**
     * 远程操作信息
    * @字段说明 oper
    */
    private MesiStateContext mesiContext;

    public ExclusiveStateImpl(MesiStateContext mesiContext) {
        this.mesiContext = mesiContext;
    }

    @Override
    public Object loadRead(String key) {
        // 直接返回缓存中的数据
        return mesiContext.getLocalCache(key);
    }

    @Override
    public void localWrite(String key, Object value) {
        // 数据在写入本地时将，将变为修改状态modified状态
        this.mesiContext.setCurrState(MesiState.MODIFIED_STATE.getState());
        this.mesiContext.localWrite(key, value);
    }

}
